const redis = require("redis")

const {REDIS_CONF} = require("../config/db")

//创建客户端

const redisClient = redis.createClient(REDIS_CONF.port,REDIS_CONF.port)

redisClient.on("err",(err)=>{
  console.log(err);
  
})

function set(key,val){
      // 不要直接将object类型的数据存到redis 会有问题
  if(typeof val === "object"){
    val = JSON.stringify(val)
  }
  redisClient.set(key,val,redis.print)
}
//判断是否出错 出错就reject 然后判断key有没有值 没有就给一个null 如果有就判断是否是JOSN类型的数据
//如果是 就resolve(解析后的JSON) 如果不是 直接返回
function get(key){
  return new Promise((resolve,reject)=>{
    redisClient.get(key,(err,val)=>{
      if(err){
        reject(err)
      }else{
        if(val == null){
          resolve(null)
        }
        try{
          resolve(JSON.parse(val))
        }catch(err){
          resolve(val)
          
        }
      }
    })
  })
}

module.exports={
  set,
  get
}